অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) একটি মেসেজ ব্রোকার, যা মেসেজিং সিস্টেমের মধ্যে নিরাপত্তা নিশ্চিত করার জন্য Authentication এবং Authorization কনফিগারেশন সাপোর্ট করে। এই দুটি প্রক্রিয়া নিশ্চিত করে যে, শুধুমাত্র বৈধ ব্যবহারকারীরা মেসেজিং সিস্টেমে প্রবেশ করতে এবং মেসেজ প্রেরণ বা গ্রহণ করতে পারে।
- Authentication (অথেন্টিকেশন): এটি নিশ্চিত করে যে, ব্যবহৃত ইউজার বা ক্লায়েন্ট বৈধ কি না।
- Authorization (অথোরাইজেশন): এটি নিশ্চিত করে যে, বৈধ ব্যবহারকারী বা ক্লায়েন্ট কী ধরণের কার্যক্রম (যেমন মেসেজ পাঠানো, মেসেজ গ্রহণ করা, কিউ বা টপিক এক্সেস) করতে পারবে।
Authentication এবং Authorization কনফিগারেশন
অ্যাপাচি অ্যাকটিভএমকিউ তে Authentication এবং Authorization কনফিগার করতে JAAS (Java Authentication and Authorization Service) এবং accessControl.xml ফাইল ব্যবহৃত হয়। নিচে এই কনফিগারেশন প্রক্রিয়া বর্ণনা করা হলো।
১. Authentication কনফিগারেশন
অ্যাপাচি অ্যাকটিভএমকিউ তে Authentication কনফিগার করতে JAAS (Java Authentication and Authorization Service) ব্যবহৃত হয়। JAAS ক্লায়েন্টকে ব্রোকারে লগইন করার অনুমতি দেয়, এবং ইউজারের পরিচিতি যাচাই করার জন্য বিভিন্ন পদ্ধতি ব্যবহার করতে পারে।
JAAS কনফিগারেশন ফাইল
প্রথমে conf ফোল্ডারে একটি jaas.conf ফাইল তৈরি করুন, যেখানে আপনি লগইন মডিউল কনফিগার করবেন।
jaas.conf ফাইলের উদাহরণ:
ActiveMQ {
org.apache.activemq.jaas.PropertiesLoginModule required
userProperties="conf/users.properties"
groupProperties="conf/groups.properties";
};
এখানে, users.properties এবং groups.properties ফাইল দুটি ব্যবহারকারী এবং তাদের গ্রুপের তথ্য সংরক্ষণ করবে।
users.properties
এটি ব্যবহারকারীদের ইউজারনেম এবং পাসওয়ার্ড সংরক্ষণ করবে।
users.properties ফাইলের উদাহরণ:
admin=adminpassword
user=userpassword
groups.properties
এটি ব্যবহারকারীদের গ্রুপ সংক্রান্ত তথ্য সংরক্ষণ করবে।
groups.properties ফাইলের উদাহরণ:
admin=adminGroup
user=userGroup
JAAS কনফিগারেশন লোড করা
এখন, activemq.xml কনফিগারেশন ফাইলের মধ্যে JAAS কনফিগারেশন লোড করতে হবে:
<broker xmlns="http://activemq.apache.org/schema/core"
brokerName="localhost"
dataDirectory="data">
<securityContext>
<jaasLoginModule configuration="jaas.conf"/>
</securityContext>
</broker>
এই কনফিগারেশন ফাইলটি ActiveMQ সার্ভারকে JAAS কনফিগারেশন লোড করার জন্য বলে, যাতে ইউজারনেম এবং পাসওয়ার্ড যাচাই করা যায়।
২. Authorization কনফিগারেশন
অ্যাপাচি অ্যাকটিভএমকিউ তে Authorization কনফিগার করার জন্য accessControl.xml ফাইল ব্যবহার করা হয়। এই ফাইলটি নির্ধারণ করে যে, কোন ইউজার বা গ্রুপ কোন মেসেজ ডেস্টিনেশন (Queue, Topic) অ্যাক্সেস করতে পারবে এবং তাদের কি ধরনের কার্যক্রম করার অনুমতি থাকবে (যেমন মেসেজ পাঠানো বা গ্রহণ করা)।
accessControl.xml কনফিগারেশন
conf ফোল্ডারে accessControl.xml ফাইল তৈরি করুন এবং ব্যবহারকারীদের পারমিশন কনফিগার করুন।
accessControl.xml ফাইলের উদাহরণ:
<broker xmlns="http://activemq.apache.org/schema/core">
<authorizationPlugin>
<simpleAuthorizationMap>
<authorizationEntries>
<authorizationEntry queue=">" read="admin, user" write="admin" admin="admin"/>
<authorizationEntry topic=">" read="admin, user" write="admin" admin="admin"/>
</authorizationEntries>
</simpleAuthorizationMap>
</authorizationPlugin>
</broker>
এই কনফিগারেশনে:
queue=">": এখানে>চিহ্নটি প্রতিটি কিউকে নির্দেশ করে।read="admin, user": এখানেadminএবংuserগ্রুপের সদস্যদের কিউ বা টপিক থেকে মেসেজ পড়ার অনুমতি দেওয়া হয়েছে।write="admin": শুধুমাত্রadminগ্রুপের সদস্যদের মেসেজ লেখার (প্রেরণ) অনুমতি দেওয়া হয়েছে।admin="admin":adminগ্রুপের সদস্যদের কিউ বা টপিকের জন্য পূর্ণ প্রশাসনিক অনুমতি দেওয়া হয়েছে।
৩. Security কনফিগারেশন (SSL/TLS)
অ্যাপাচি অ্যাকটিভএমকিউ তে SSL/TLS কনফিগারেশনও করা যেতে পারে, যাতে মেসেজিং সিস্টেমের মধ্যে নিরাপদ যোগাযোগ নিশ্চিত করা যায়। এই কনফিগারেশন মেসেজ ট্রান্সফারের সময় এনক্রিপশন এবং অথেন্টিকেশন প্রদান করে।
SSL/TLS কনফিগারেশন উদাহরণ:
<transportConnectors>
<transportConnector name="ssl" uri="ssl://0.0.0.0:61617?keyStore=conf/keystore.jks&keyStorePassword=password&trustStore=conf/truststore.jks&trustStorePassword=password"/>
</transportConnectors>
এখানে:
keyStore: এটি SSL সার্টিফিকেটের কীগুলি ধারণ করে।trustStore: এটি সার্ভারের দ্বারা প্রমাণীকৃত সার্টিফিকেট ধারণ করে।keyStorePasswordএবংtrustStorePassword: এসএসএল কীগুলির জন্য পাসওয়ার্ড।
সারাংশ
অ্যাপাচি অ্যাকটিভএমকিউ তে Authentication এবং Authorization কনফিগারেশন ব্যবহার করে আপনি মেসেজিং সিস্টেমে নিরাপত্তা নিশ্চিত করতে পারেন। JAAS (Java Authentication and Authorization Service) ব্যবহার করে ইউজার অথেন্টিকেশন করা হয় এবং accessControl.xml ফাইল ব্যবহার করে ইউজার এবং গ্রুপদের পারমিশন কনফিগার করা হয়। এছাড়া SSL/TLS কনফিগারেশন নিরাপদ মেসেজ ট্রান্সফার নিশ্চিত করতে সাহায্য করে।
Read more